{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<small><i>This notebook was put together by [Jake Vanderplas](http://www.vanderplas.com). Source and license info is on [GitHub](https://github.com/jakevdp/sklearn_tutorial/).</i></small>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Density Estimation: Gaussian Mixture Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we'll explore **Gaussian Mixture Models**, which is an unsupervised clustering & density estimation technique.\n",
    "\n",
    "We'll start with our standard set of initial imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jakevdp/anaconda/envs/python3.5/lib/python3.5/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n",
      "  warnings.warn(self.msg_depr % (key, alt_key))\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import stats\n",
    "\n",
    "# use seaborn plotting defaults\n",
    "import seaborn as sns; sns.set()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introducing Gaussian Mixture Models\n",
    "\n",
    "We previously saw an example of K-Means, which is a clustering algorithm which is most often fit using an expectation-maximization approach.\n",
    "\n",
    "Here we'll consider an extension to this which is suitable for both **clustering** and **density estimation**.\n",
    "\n",
    "For example, imagine we have some one-dimensional data in a particular distribution:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nm1HbwCfH9cxvP1SOI39K26W+k7rlSyUJ+1u0pX9butRBG//PaUtem9Xn/vy8WxLaFi3TCgpmPt2r\nZWg7HA4FAoHI62vD1+FwyO+/ei9eIBDQwoULo/aZznt/ecay2HvvLdOPf/xDy/UAAJiLoieppLKy\nMh0+fFiS1N3drZKSq3ufxcXFOn36tIaGhjQ6OqqjR4/qnnvu0cqVK6ftAwAA4mMLh8PhaCtceyW4\nJHk8Hn3wwQcKBoNyuVx6++239dJLLykcDqumpka1tbXX7VNUVJT8dwMAwBxmGdoAACA9WB4eBwAA\n6YHQBgDAEIQ2AACGILQBADBEWjww5B//+Ifeeustvfjii5Kknp4eNTc3y26362tf+5o2bdqU4grT\nyze+8Q0tX75ckrRy5Upt2bIltQWlkVTMe2+yH/3oR5EZDZcsWaJnn302xRWll56eHv385z/XgQMH\ndObMGf30pz9VVlaW7rjjDjU0NKS6vLRx7Th99NFHevTRRyOfUbW1tVq7dm1qC0wD4+Pj2rVrlz7+\n+GONjY3pscce0+233z7jbSrlod3c3KzOzk7dddfVeWcbGhr00ksvacmSJXrkkUd07Ngx3XnnnSms\nMn2cOXNGd999t15++eVUl5KWos2Vj8lGR0clSfv3709xJenp1Vdf1V//+lfl5eVJunzr6k9+8hOt\nXr1aDQ0Namtr0/3335/iKlPvi+Pk8/m0YcMGrV+/PrWFpZlDhw5p0aJFev755zU0NKTvf//7uvPO\nO2e8TaX88HhZWZkaGxsjr/1+v8bGxrRkyRJJ0te//nX961//SlF16cfn86mvr0/r1q3To48+qlOn\nTqW6pLQSba58THbs2DGNjIyovr5e69evV09PT6pLSivLli3T3r17I68/+OADrV69WtLlo13vvvtu\nqkpLK9cbp7ffflt1dXXavXu3RkZGUlhd+li7dq02b94s6fJc5fPmzdOHH344421q1kL7T3/6k777\n3e9O+s/n8005bBIIBCKH6yQpLy9Pw8PDs1VmWrnemBUWFurRRx/V/v379cgjj2jbtm2pLjOtTDdX\nPqbKyclRfX29fve736mxsVFPPPEEY3WNysrKSQ95uHZKi0z+XPqiL45TaWmptm/frjfeeENLly7V\nr3/96xRWlz5uvvlm5ebmyu/3a/PmzdqyZUtc29SsHR6vqalRTU2N5Xp5eXlT5jNfsGBBMktLW9cb\ns88//zzyD2TVqlXq7+9PRWlpK5557zPV8uXLtWzZssjPt9xyi/r7+3XrrbemuLL0dO12lMmfS1bu\nv//+yBcUSrv4AAABeElEQVTnyspKPfOM9XMlMsX58+e1adMm1dXV6Tvf+Y5eeOGFSFus21TafZo5\nHA5lZ2fr7NmzCofDeuedd7Rq1apUl5U2XnrpJf3hD3+QdPnw5pe+9KUUV5Reos2Vj8n+/Oc/a8+e\nPZKkvr4+BQIBFRQUpLiq9PWVr3xFR44ckST985//5HNpGvX19fr3v/8tSXr33Xd19913p7ii9HDh\nwgXV19dr27Zt+uEPLz/46q677prxNpXyC9Gup6mpKXKo7r777tNXv/rVVJeUNq4cEj98+LDsdrs8\nHk+qS0orlZWV6uzslNvtliTGJ4qamhrt3LlTDz74oLKysvTss89yVCKKHTt26Gc/+5nGxsZUXFys\nqqqqVJeUlhobG/X000/rpptuUkFBgZ566qlUl5QW9u3bp6GhIXm9Xu3du1c2m027d+/WM888M6Nt\nirnHAQAwBF+rAQAwBKENAIAhCG0AAAxBaAMAYAhCGwAAQxDaAAAYgtAGAMAQ/x+WamWvxFcWNgAA\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10ddb3438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(2)\n",
    "x = np.concatenate([np.random.normal(0, 2, 2000),\n",
    "                    np.random.normal(5, 5, 2000),\n",
    "                    np.random.normal(3, 0.5, 600)])\n",
    "plt.hist(x, 80, normed=True)\n",
    "plt.xlim(-10, 20);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Gaussian mixture models will allow us to approximate this density:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe0AAAFVCAYAAADCLbfjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4VOXB/vHvLJlJZkkCSdgxhCW4gAiI4hKNbMUFRSEa\nFKmVvm1fauvPF+vairS1UbtoF6lWaxWsYlWsCq4IgsYFiAQJKpvse0hCMpNJJpMzvz8i0RhgQkhy\nZpL7c125SuY5Z3LPacw958w5z7GEw+EwIiIiEvWsZgcQERGRplFpi4iIxAiVtoiISIxQaYuIiMQI\nlbaIiEiMUGmLiIjEiIilHQ6HmTVrFrm5uUybNo0dO3Y0WiYQCDBlyhS2bNkCQCgUYubMmeTm5jJ1\n6tT6x0VERKT5Ipb24sWLCQaDzJ8/n5kzZ5KXl9dgvKioiKlTpzYo82XLlmEYBvPnz2fGjBk89NBD\nLZ9cRESkg4lY2gUFBWRlZQEwZMgQioqKGozX1NQwZ84c+vbtW/9Ynz59qK2tJRwOU1FRQVxcXAvH\nFhER6XjskRbw+Xx4vd5vVrDbMQwDq7Wu74cOHQrUHUY/zO12s3PnTsaPH09ZWRmPPfZYS+cWERHp\ncCLuaXs8Hvx+f/333y7so3nqqafIysrirbfe4tVXX+X2228nGAwecx3NpioiInJsEfe0hw0bxtKl\nSxk/fjyFhYVkZmZGfNLExMT6Q+Jer5dQKIRhGMdcx2KxcOBARRNjd1xpaV5tpybStmoabaem0XZq\nOm2rpklL80Ze6DsilvbYsWPJz88nNzcXgLy8PBYuXEggECAnJ6d+OYvFUv/vG264gbvuuovrrruu\n/kzy+Pj44w4nIiIi37BE012+9M4sMr2DbTptq6bRdmoabaem07ZqmubsaWtyFRERkRih0hYREYkR\nKm0REZEYodIWERGJESptERGRGKHSFhERiREqbRERkRih0hYREYkRKm0REZEYodIWERGJESptERGR\nGKHSFhERiREqbRERkRih0hYREYkRKm0REZEYodIWERGJESptERGRGKHSFhERiREqbRERkRih0hYR\nEYkRKm0REZEYodIWERGJESptERGRGKHSFhERiREqbRERkRih0hYREYkREUs7HA4za9YscnNzmTZt\nGjt27Gi0TCAQYMqUKWzZsqX+sX/84x/k5uYyadIkXnrppZZNLdIOGIZBScnBo34ZhmF2RBGJMvZI\nCyxevJhgMMj8+fNZs2YNeXl5zJkzp368qKiIWbNmsW/fvvrHVqxYwerVq5k/fz6VlZU8+eSTrZNe\nJIaVlZXy4uK1uDyJjcYqfeVMHjOYzp1TTEgmItEqYmkXFBSQlZUFwJAhQygqKmowXlNTw5w5c/jF\nL35R/9gHH3xAZmYmM2bMwO/3c9ttt7VwbJH2weVJxONNNjuGiMSIiKXt8/nwer3frGC3YxgGVmvd\nkfWhQ4cCdYfRDystLWX37t089thj7Nixg//93//lzTffbOnsIiIiHUrE0vZ4PPj9/vrvv13YR5Oc\nnEy/fv2w2+1kZGTgdDopKSmhc+fOx1wvLc17zHGpo+3UdNG8razWIC6XA7fb2WjMqHWQmuolJaVt\n8kfzdoom2k5Np23VOiKW9rBhw1i6dCnjx4+nsLCQzMzMiE86fPhw5s2bxw033MC+ffuoqqqiU6dO\nEdc7cKCiaak7sLQ0r7ZTE0X7tiopqaCyMojVVt1orLIySHFxBYbhaPUc0b6dooW2U9NpWzVNc97Y\nRCztsWPHkp+fT25uLgB5eXksXLiQQCBATk5O/XIWi6X+39nZ2axatYrJkyfXn33+7XERERE5fhFL\n22KxMHv27AaPZWRkNFpu7ty5Db6/9dZbTzCaiIiIfJsmVxEREYkRKm0REZEYodIWERGJESptERGR\nGKHSFhERiREqbRERkRih0hYREYkRKm0REZEYodIWERGJESptERGRGKHSFhERiREqbRERkRih0hYR\nEYkRKm0REZEYodIWERGJESptERGRGKHSFhERiREqbRERkRih0hYREYkRKm0REZEYodIWERGJESpt\nERGRGKHSFhERiREqbRERkRih0hYREYkRKm0REZEYEbG0w+Ews2bNIjc3l2nTprFjx45GywQCAaZM\nmcKWLVsaPH7w4EGys7MbPS4iIiLHL2JpL168mGAwyPz585k5cyZ5eXkNxouKipg6dWqjMg+FQsya\nNYv4+PiWTSwiItJBRSztgoICsrKyABgyZAhFRUUNxmtqapgzZw59+/Zt8PgDDzzAlClT6NKlSwvG\nFRER6bgilrbP58Pr9dZ/b7fbMQyj/vuhQ4fStWtXwuFw/WMLFiwgJSWF8847r8HjIiIi0nz2SAt4\nPB78fn/994ZhYLUeu+sXLFiAxWIhPz+fL7/8kttvv52///3vpKSkHHO9tDTvMceljrZT00XztrJa\n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\nECJF/A3L5BLyjtICjwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10ddb3320>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.mixture import GMM\n",
    "X = x[:, np.newaxis]\n",
    "clf = GMM(4, n_iter=500, random_state=3).fit(X)\n",
    "xpdf = np.linspace(-10, 20, 1000)\n",
    "density = np.exp(clf.score(xpdf[:, np.newaxis]))\n",
    "\n",
    "plt.hist(x, 80, normed=True, alpha=0.5)\n",
    "plt.plot(xpdf, density, '-r')\n",
    "plt.xlim(-10, 20);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that this density is fit using a **mixture of Gaussians**, which we can examine by looking at the ``means_``, ``covars_``, and ``weights_`` attributes:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 3.95722594],\n",
       "       [ 0.25029969],\n",
       "       [ 1.45154151],\n",
       "       [ 9.56336527]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.means_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 23.14843932],\n",
       "       [  6.46691735],\n",
       "       [  5.79759101],\n",
       "       [ 14.80680322]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.covars_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.21904396,  0.31750123,  0.35379208,  0.10966273])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.weights_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1116aeba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(x, 80, normed=True, alpha=0.3)\n",
    "plt.plot(xpdf, density, '-r')\n",
    "\n",
    "for i in range(clf.n_components):\n",
    "    pdf = clf.weights_[i] * stats.norm(clf.means_[i, 0],\n",
    "                                       np.sqrt(clf.covars_[i, 0])).pdf(xpdf)\n",
    "    plt.fill(xpdf, pdf, facecolor='gray',\n",
    "             edgecolor='none', alpha=0.3)\n",
    "plt.xlim(-10, 20);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These individual Gaussian distributions are fit using an expectation-maximization method, much as in K means, except that rather than explicit cluster assignment, the **posterior probability** is used to compute the weighted mean and covariance.\n",
    "Somewhat surprisingly, this algorithm **provably** converges to the optimum (though the optimum is not necessarily global)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How many Gaussians?\n",
    "\n",
    "Given a model, we can use one of several means to evaluate how well it fits the data.\n",
    "For example, there is the Aikaki Information Criterion (AIC) and the Bayesian Information Criterion (BIC)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25911.2121006\n",
      "25840.4401732\n"
     ]
    }
   ],
   "source": [
    "print(clf.bic(X))\n",
    "print(clf.aic(X))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's take a look at these as a function of the number of gaussians:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111a4da20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_estimators = np.arange(1, 10)\n",
    "clfs = [GMM(n, n_iter=1000).fit(X) for n in n_estimators]\n",
    "bics = [clf.bic(X) for clf in clfs]\n",
    "aics = [clf.aic(X) for clf in clfs]\n",
    "\n",
    "plt.plot(n_estimators, bics, label='BIC')\n",
    "plt.plot(n_estimators, aics, label='AIC')\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It appears that for both the AIC and BIC, 4 components is preferred."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example: GMM For Outlier Detection\n",
    "\n",
    "GMM is what's known as a **Generative Model**: it's a probabilistic model from which a dataset can be generated.\n",
    "One thing that generative models can be useful for is **outlier detection**: we can simply evaluate the likelihood of each point under the generative model; the points with a suitably low likelihood (where \"suitable\" is up to your own bias/variance preference) can be labeld outliers.\n",
    "\n",
    "Let's take a look at this by defining a new dataset with some outliers:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "np.random.seed(0)\n",
    "\n",
    "# Add 20 outliers\n",
    "true_outliers = np.sort(np.random.randint(0, len(x), 20))\n",
    "y = x.copy()\n",
    "y[true_outliers] += 50 * np.random.randn(20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nxbUfEEC4xdEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1108b7390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf = GMM(4, n_iter=500, random_state=0).fit(y[:, np.newaxis])\n",
    "xpdf = np.linspace(-10, 20, 1000)\n",
    "density_noise = np.exp(clf.score(xpdf[:, np.newaxis]))\n",
    "\n",
    "plt.hist(y, 80, normed=True, alpha=0.5)\n",
    "plt.plot(xpdf, density_noise, '-r')\n",
    "plt.xlim(-15, 30);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's evaluate the log-likelihood of each point under the model, and plot these as a function of ``y``:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nVdHR0Vq3bp127dqlhQsXasWKFUE7Dndj6NWrl8aOHasBAwa41oo38b3Izs5WQkKCKioqlJqaqsWL\nFwf9ONypqqpSp06dXNuRkZFqaGjQFVcE/6UnMTExkhrHMGfOHM2bN0/PPfec6+sdO3ZUZWWlU+V5\npKioSN26ddPtt9+utWvXSmo8DXaRCWOQpFOnTunYsWNat26dysrK9NRTTxk5jov/Z++55x6dPn1a\na9eu1e7du5t8PVjHMWbMGB09etS1bV2yHErHjh1VVVWl6urqJv/fr7zySo/G49fQTkpKUlJSUpO+\nWbNmadq0aZowYYJKS0s1c+ZMFRQUuGbfUmNwdO7c2Z+ltYm7cSQnJ2v06NGSpFtvvVVffPGFYmNj\ng3Yc7sZw9913q7CwUFu2bNHXX3+txx9/XGvWrAnaMUjuxyFJpaWlSklJ0YIFCzRs2DBVVVUF9Tjc\niY2NVXV1tWvblMC+6Pjx45o5c6YefPBBjR07Vjk5Oa6vmfD7LyoqUkREhHbs2KHS0lItWLBAp06d\ncn3dhDFI0lVXXaUbbrhBkZGRuv766xUdHa3y8nLX100Zx4YNG3THHXdo3rx5Ki8v10MPPaS6ujrX\n100Zh6Qm/48v1u1tXgT8L0KXLl1cM6CuXbu6ZkRRUVEqKyuTZVnavn27hg4dGujS2mTo0KEqLi6W\nJB0+fFi9evVSx44djRrH22+/rY0bNyo/P1/XXHONXnvtNSPfi08//VRz587V888/r5EjR0qSkeMY\nMmSI69/U3r171b9/f4cr8tzFD33PPPOMxo8fL0m66aabtGvXLknSP/7xj6D//b/++uvKz89Xfn6+\nbrzxRi1fvlx33HGHUWOQGv82/fOf/5QklZeXq6amRrfddpvrqYymjOPSrOjUqZPq6+t18803GzcO\nSbr55pub/TsaOHCgPvzwQ9XW1qqyslKff/65+vXr1+q+An71+OzZs7VkyRIVFBSovr5eS5culSRl\nZGQoJSVFDQ0Nuv322zVo0KBAl9Ym999/vzIyMjRx4kRJUmZmpiTzxnFRRESE6xBOZmamUWNYuXKl\namtrlZWVJcuy1LlzZ+Xm5hr3XowZM0Y7duxwnZ/Pzs52uCLPrVu3TmfPntXq1auVm5uriIgILV68\nWEuXLlVdXZ1uuOEG3XPPPU6X2WYLFizQr371K6PGMGrUKO3evVtJSUmuOxKuu+46LVmyxKhxPPzw\nw1q0aJGmTJmi+vp6paSk6Ec/+pFx45Dc/zuKiIjQQw89pMmTJ8uyLCUnJysqKqrVfbH2OAAAhjDn\nhBkAAGHvK/AhAAAAJ0lEQVSO0AYAwBCENgAAhiC0AQAwBKENAIAhCG0AAAxBaAMAYIj/B32UyQkD\nFPxfAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111a1d4e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "log_likelihood = clf.score_samples(y[:, np.newaxis])[0]\n",
    "plt.plot(y, log_likelihood, '.k');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "true outliers:\n",
      "[  99  537  705 1033 1653 1701 1871 2046 2135 2163 2222 2496 2599 2607 2732\n",
      " 2893 2897 3264 3468 4373]\n",
      "\n",
      "detected outliers:\n",
      "[  99  537  705 1653 2046 2135 2163 2222 2496 2732 2893 2897 3067 3173 3253\n",
      " 3468 3483 4373]\n"
     ]
    }
   ],
   "source": [
    "detected_outliers = np.where(log_likelihood < -9)[0]\n",
    "\n",
    "print(\"true outliers:\")\n",
    "print(true_outliers)\n",
    "print(\"\\ndetected outliers:\")\n",
    "print(detected_outliers)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The algorithm misses a few of these points, which is to be expected (some of the \"outliers\" actually land in the middle of the distribution!)\n",
    "\n",
    "Here are the outliers that were missed:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{1033, 1701, 1871, 2599, 2607, 3264}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "set(true_outliers) - set(detected_outliers)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And here are the non-outliers which were spuriously labeled outliers:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{3067, 3173, 3253, 3483}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "set(detected_outliers) - set(true_outliers)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we should note that although all of the above is done in one dimension, GMM does generalize to multiple dimensions, as we'll see in the breakout session."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Other Density Estimators\n",
    "\n",
    "The other main density estimator that you might find useful is *Kernel Density Estimation*, which is available via ``sklearn.neighbors.KernelDensity``. In some ways, this can be thought of as a generalization of GMM where there is a gaussian placed at the location of *every* training point!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nat8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111683668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.neighbors import KernelDensity\n",
    "kde = KernelDensity(0.15).fit(x[:, None])\n",
    "density_kde = np.exp(kde.score_samples(xpdf[:, None]))\n",
    "\n",
    "plt.hist(x, 80, normed=True, alpha=0.5)\n",
    "plt.plot(xpdf, density, '-b', label='GMM')\n",
    "plt.plot(xpdf, density_kde, '-r', label='KDE')\n",
    "plt.xlim(-10, 20)\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All of these density estimators can be viewed as **Generative models** of the data: that is, that is, the model tells us how more data can be created which fits the model."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
